<html>

<head>
<link rel="stylesheet" type="text/css" href="../../doc.css" />
<style type="text/css">
.auto-style1 {
	border-style: solid;
	border-width: 1px;
}
</style>
</head>

<body>
<h1><u>AssemblerPassOne</u></h1>
<p><strong>Purpose:</strong> A class to parse the input file of important 
information, and create an list of IntermediateData to be used by the second 
pass of the assembler.&nbsp; Also checks for syntax error.</p>
<hr>
<p><strong>Procedure Name:</strong>	AssemblerPassOne<br><strong>Description:</strong> Constructor to read and parse data in the first pass.<br><strong>Specification reference codes:</strong><br><strong>Calling Sequence</strong><br>	<strong>Input Parameters:</strong> String file - file name to be parsed<br>	<strong>Output Parameters:</strong><br><br><strong>Error Conditions Tested:</strong> 
Invalid starting location counter<br><strong>Error Messages Generated:</strong> InvalidLC<br><strong>Original Author:</strong> Kyle Salberg<br><strong>Procedure Creation Date:</strong> 4/1/2011<br><strong>Modification Log:</strong><br>
<table class="auto-style1" style="width: 100%">
	<tr>
		<td style="width: 74px"><strong>Who</strong></td>
		<td style="width: 99px"><strong>When</strong></td>
		<td style="width: 300px"><strong>Why</strong></td>
	</tr>
	<tr>
		<td style="width: 74px; height: 23px;">Kyle</td>
		<td style="width: 99px; height: 23px;">4/1/2011</td>
		<td style="width: 300px; height: 23px;">Created</td>
	</tr>
	<tr>
		<td style="width: 74px">Kyle</td>
		<td style="width: 99px">4/16/2011</td>
		<td style="width: 300px">Fixed parser to accept either spaces or tabs as 
		separators between instruction parameters.</td>
	</tr>
	<tr>
		<td style="width: 74px">Kyle</td>
		<td style="width: 99px">4/19/2011</td>
		<td style="width: 300px">Fixed parser to recognize ':' as a character 
		literal and not a comment.</td>
	</tr>
	<tr>
		<td style="width: 74px">Kevin</td>
		<td style="width: 99px">4/19/2011</td>
		<td style="width: 300px">Edited to check for syntax and other errors.</td>
	</tr>
	
	<tr>
		<td style="width: 74px">&nbsp;</td>
		<td style="width: 99px">&nbsp;</td>
		<td style="width: 300px">&nbsp;</td>
	</tr>
</table>
<br><strong>Coding Standards Met:</strong> Signed-Kyle<br><strong>Testing Standards Met:</strong> Signed-Aditya<br></p>
<hr>
<p><strong>Procedure Name:</strong>	ParseLine<br><strong>Description:</strong> Parses a line of code into an IntermediateData object<br><strong>Specification reference codes:</strong><br><strong>Calling Sequence</strong><br>	<strong>Input Parameters:</strong> String line - the line of code to be parsed<br>	<strong>Output Parameters:</strong> returns a reference to the IntermediateData object created with the passed line of code<br><br><strong>Error Conditions Tested:</strong> 
Comment format, label format, blank line<br><strong>Error Messages Generated:</strong> 
InvalidComment, InvalidLabel, InvalidBlankLine<br><strong>Original Author:</strong> Kyle Salberg<br><strong>Procedure Creation Date:</strong> 4/1/2011<br><strong>Modification Log:</strong><br>
<table class="auto-style1" style="width: 100%">
	<tr>
		<td style="width: 74px"><strong>Who</strong></td>
		<td style="width: 99px"><strong>When</strong></td>
		<td style="width: 300px">W<strong>hy</strong></td>
	</tr>
	<tr>
		<td style="width: 74px">Kyle</td>
		<td style="width: 99px">4/1/2011</td>
		<td style="width: 300px">Created</td>
	</tr>
	<tr>
		<td style="width: 74px">Kevin</td>
		<td style="width: 99px">4/19/2011</td>
		<td style="width: 300px">Edited to check for syntax and other errors.</td>
	</tr>
	<tr>
		<td style="width: 74px">&nbsp;</td>
		<td style="width: 99px">&nbsp;</td>
		<td style="width: 300px">&nbsp;</td>
	</tr>
</table>
<br><strong>Coding Standards Met:</strong> Signed-Kyle<br><strong>Testing Standards Met:</strong> Signed-Aditya<br></p>
<hr>
<p><strong>Procedure Name:</strong>	ParseOperator<br><strong>Description:</strong> Sub-command of the ParseLine function to fill in the Operator and Directive related fields of the IntermediateData Object<br><strong>Specification reference codes:</strong><br><strong>Calling Sequence</strong><br>	<strong>Input Parameters:</strong> IntermediateData result - A reference to the object to be filled.<br>					  String[] columns - the array containing the split contents of the line<br>		<strong>Output Parameters:</strong> <br><strong>Error Conditions Tested:</strong> 
Validates functions, operands, operations, s-field, range of DAT values, format 
of R-Labels, format of labels used in EQU, range of directive values, checks 
that there are no erroneous commas, checks that there are three or less 
expressions in EQUe or ADCe, validates directive labels, makes sure EXTRN 
directives have (only one) label associated with them<br><strong>Error Messages Generated:</strong> 
InvalidFunction, operandError, InvalidOperation, InvalidSField, InvalidDatVal, 
InvalidRLabel, InvalidEQULabel, InvalidDirectiveRange, InvalidCommaCount, 
InvalidExpressionOpCount, InvalidDirectiveLabel, InvalidNullLabel, 
InvalidDuplicateLabel, InvalidLabel<br><strong>Original Author:</strong> Kyle Salberg<br><strong>Procedure Creation Date:</strong> 4/2/2011<br><strong>Modification Log:</strong><br>
<table class="auto-style1" style="width: 100%">
	<tr>
		<td style="width: 74px"><strong>Who</strong></td>
		<td style="width: 99px"><strong>When</strong></td>
		<td style="width: 300px">W<strong>hy</strong></td>
	</tr>
	<tr>
		<td style="width: 74px">Kyle</td>
		<td style="width: 99px">4/2/2011</td>
		<td style="width: 300px">Created</td>
	</tr>
	<tr>
		<td style="width: 74px">Kevin</td>
		<td style="width: 99px">4/19/2011</td>
		<td style="width: 300px">Edited to check for syntax and other errors.</td>
	</tr>
	<tr>
		<td style="width: 74px">Kyle</td>
		<td style="width: 99px">5/5/2011</td>
		<td style="width: 300px">Fixed error checking. Added support for 
		EQU/EQUe. Fixed recognition of EXTRN directive.</td>
	</tr>
	<tr>
		<td style="width: 74px">&nbsp;</td>
		<td style="width: 99px">&nbsp;</td>
		<td style="width: 300px">&nbsp;</td>
	</tr>
</table>
<br><br><strong>Coding Standards Met:</strong> Signed-Kyle<br><strong>Testing Standards Met:</strong> Signed-Aditya<br></p>
<hr>
<p><strong>Procedure Name:</strong> EvaluateEQUeLabel<br><strong>Description:</strong> evaluates EQUe<br><strong>Specification reference codes:</strong><br><strong>Calling Sequence</strong><br>	
<strong>Input Parameters:</strong> String label - label to be evaluated<br>Output 
Parameters: </strong>int - evaluated eque<br><br><strong>Error Conditions Tested:</strong> none<br><strong>Error 
Messages Generated: </strong>none<br>
<strong>Original Author:</strong> Kyle<br><strong>Procedure Creation Date:</strong> 5/7/2011<br><strong>Modification Log:</strong><table class="auto-style1" style="width: 100%">
	<tr>
		<td style="width: 74px"><strong>Who</strong></td>
		<td style="width: 99px"><strong>When</strong></td>
		<td style="width: 300px">W<strong>hy</strong></td>
	</tr>
	<tr>
		<td style="width: 74px">Kyle</td>
		<td style="width: 99px">5/7/2001</td>
		<td style="width: 300px">Created</td>
	</tr>
	<tr>
		<td style="width: 74px">&nbsp;</td>
		<td style="width: 99px">&nbsp;</td>
		<td style="width: 300px">&nbsp;</td>
	</tr>
</table>
<br><br><strong>Coding Standards Met:</strong> Signed-Kyle<br><strong>Testing Standards Met:</strong> Signed-Aditya<br></p>
<hr>
<p><strong>Procedure Name:</strong>	DisplayData<br><strong>Description:</strong> Prints the the data of each IntermediateData object, followed by the unsorted SymbolTable<br><strong>Specification reference codes:</strong><br><strong>Calling Sequence</strong><br>	<strong>Input Parameters:</strong> <br>	<strong>Output Parameters:</strong><br><br><strong>Error Conditions Tested:</strong> 
none<br><strong>Error Messages Generated:</strong> none<br><strong>Original Author:</strong> Kyle Salberg<br><strong>Procedure Creation Date:</strong> 4/3/2011<br><strong>Modification Log:</strong><br>
<table class="auto-style1" style="width: 100%">
	<tr>
		<td style="width: 74px"><strong>Who</strong></td>
		<td style="width: 99px"><strong>When</strong></td>
		<td style="width: 300px">W<strong>hy</strong></td>
	</tr>
	<tr>
		<td style="width: 74px">Kyle</td>
		<td style="width: 99px">4/3/2011</td>
		<td style="width: 300px">Created</td>
	</tr>
	<tr>
		<td style="width: 74px">&nbsp;</td>
		<td style="width: 99px">&nbsp;</td>
		<td style="width: 300px">&nbsp;</td>
	</tr>
</table>
<br><br><strong>Coding Standards Met:</strong> Signed-Kyle<br><strong>Testing Standards Met:</strong> Signed-Aditya<br>
</p>
<hr>
<p><strong>Procedure Name:</strong> CheckOperandError<br><strong>Description:</strong> Takes in a operand string 
and the accepted formats and returns an error if one is found.<br><strong>Specification reference codes:</strong><br><strong>Calling Sequence</strong><br>	<strong>Input Parameters:</strong> 
String operand - the string representation of the operand to be checked for 
errors.<br>int format - a bitmask containing the acceptable formats for the 
operand<br>	<strong>Output Parameters:</strong> String error - the error key corresponding to the 
error that was found, or null if no error is found<br><br><strong>Error Conditions Tested:</strong> 
Checks operand format<br><strong>Error Messages Generated:</strong> InvalidNullLabel, 
InvalidLiteral, InvalidRLabel, InvalidSField, InvalidExpression, InvalidDatVal<br><strong>Original Author:</strong> Kyle Salberg<br><strong>Procedure Creation Date:</strong> 
5/5/2011<br><strong>Modification Log:</strong><table class="auto-style1" style="width: 100%">
	<tr>
		<td style="width: 74px"><strong>Who</strong></td>
		<td style="width: 99px"><strong>When</strong></td>
		<td style="width: 300px">W<strong>hy</strong></td>
	</tr>
	<tr>
		<td style="width: 74px">Kyle</td>
		<td style="width: 99px">5/5/2011</td>
		<td style="width: 300px">Created</td>
	</tr>
	<tr>
		<td style="width: 74px">&nbsp;</td>
		<td style="width: 99px">&nbsp;</td>
		<td style="width: 300px">&nbsp;</td>
	</tr>
</table>
<br><br><strong>Coding Standards Met:</strong> Signed-Kyle<br><strong>Testing Standards Met:</strong> Signed-Aditya<br>
</p>
<hr>
</body>
</html>
